package view.joueur;

import generated.Partie;

import java.awt.Component;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.Box;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;


/**
 * @author C-Net
 * Panel d'affichage des joueurs
 */
public class JPJoueurAffichage extends javax.swing.JPanel {
	/**
	 * 
	 */
	private static final long serialVersionUID = -5564011861350832569L;
	private JScrollPane jSPListe;
	private String[] entete = {"ID","Nom", "Objectif"};
	private DefaultTableModel model = new DefaultTableModel(null,entete);
	private JTable jTListe = new JTable(getModel());
	private JPJoueur jPJoueur;
	private JLabel lblTitreListe;
	private Component verticalStrut;

	
	public JPJoueurAffichage(JPJoueur jPJoueur)  {
		super();
		this.jPJoueur = jPJoueur;
		initGUI();
		
	}
	
	private void initGUI() {
		try {
			GridBagLayout gridBagLayout = new GridBagLayout();
			gridBagLayout.columnWidths = new int[]{452, 0};
			gridBagLayout.rowHeights = new int[]{32, 0, 165, 0};
			gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
			gridBagLayout.rowWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE};
			setLayout(gridBagLayout);
			
			lblTitreListe = new JLabel();
			GridBagConstraints gbc_lblTitreListe = new GridBagConstraints();
			gbc_lblTitreListe.anchor = GridBagConstraints.NORTH;
			gbc_lblTitreListe.insets = new Insets(0, 0, 5, 0);
			gbc_lblTitreListe.gridx = 0;
			gbc_lblTitreListe.gridy = 0;
			this.add(lblTitreListe, gbc_lblTitreListe);
			lblTitreListe.setText("Liste des joueurs");
			lblTitreListe.setFont(new Font("Serif", Font.PLAIN, 24));
			
			verticalStrut = Box.createVerticalStrut(20);
			GridBagConstraints gbc_verticalStrut = new GridBagConstraints();
			gbc_verticalStrut.insets = new Insets(0, 0, 5, 0);
			gbc_verticalStrut.gridx = 0;
			gbc_verticalStrut.gridy = 1;
			add(verticalStrut, gbc_verticalStrut);
			
			jSPListe = new JScrollPane(jTListe);
			GridBagConstraints gbc_jSPListe = new GridBagConstraints();
			gbc_jSPListe.fill = GridBagConstraints.BOTH;
			gbc_jSPListe.gridx = 0;
			gbc_jSPListe.gridy = 2;
			this.add(jSPListe, gbc_jSPListe);
			jSPListe.setBounds(0, 60, 730, 670);
			jTListe.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
			jTListe.getColumnModel().getColumn(2).setPreferredWidth(0);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void afficherListe() {
		Partie p = jPJoueur.getCtrJoueur().getCtrPartie().getPartie();
		int i = 0;
		this.model = new DefaultTableModel(null,entete);

		while (i < p.getJoueur().size()){
			
			String id = String.valueOf(p.getJoueur().get(i).getIdJoueur());
			String nom = p.getJoueur().get(i).getNomJoueur();
			String objectif = p.getJoueur().get(i).getObjectif();
			
			String[] tab = {id, nom, objectif};
			getModel().addRow(tab);

			i++;
		}
		
		jTListe.setModel(getModel());
		jTListe.getColumnModel().getColumn(0).setMinWidth(0);
		jTListe.getColumnModel().getColumn(0).setMaxWidth(0);
		jTListe.repaint();
		jTListe.getTableHeader().setReorderingAllowed(false);
		
	}

	public void setjTListe(JTable jTListe) {
		this.jTListe = jTListe;
	}

	public JTable getjTListe() {
		return jTListe;
	}

	public void setModel(DefaultTableModel model) {
		this.model = model;
	}

	public DefaultTableModel getModel() {
		return model;
	}

}
